package com.easy.module.generator.service;

import com.easy.framework.database.service.IService;
import com.easy.module.generator.entity.GenTable;
import com.easy.module.generator.model.CodeModel;
import com.easy.module.generator.query.GenTableQuery;

import java.util.List;

/**
 * 生成表Service接口
 *
 * @author Yang Huijing (Email:1073602@qq.com)
 * @date 2024-11-08
 */
public interface IGenTableService extends IService<GenTable, GenTableQuery> {

    /**
     * 查询数据库表
     *
     * @param query
     * @return
     */
    List<GenTable> listDbTable(GenTableQuery query);

    /**
     * 导入数据库表
     *
     * @param tables
     */
    void importDbTable(List<GenTable> tables);

    /**
     * 同步数据库表
     *
     * @param tableId
     */
    void synchDbTable(Long tableId);

    /**
     * 预览代码
     *
     * @param tableIds 表编号列表
     * @return 预览数据列表
     */
    List<CodeModel> generatorCode(List<Long> tableIds);

    /**
     * 通过生成表编号列表查询表列表
     *
     * @param tableIds
     * @return
     */
    List<GenTable> listByTableId(List<Long> tableIds);

    /**
     * 下载代码
     *
     * @param tableIds
     * @return
     */
    byte[] download(List<Long> tableIds);

    /**
     * 批量删除
     * @param tableIds
     * @return
     */
    Boolean deleteByIds(List<Long> tableIds);
}
